---
title: lint-staged
description: Ultracite'i sahneye alınmış Git dosyalarınızda lint-staged ile otomatik çalıştırın
---

Ultracite, her commit'ten önce kodunuzu otomatik olarak biçimlendirmek ve lint kontrolünden geçirmek için [lint-staged](https://github.com/okonet/lint-staged) ile sorunsuz bir şekilde entegre olur. Bu, depoya yalnızca temiz ve doğru biçimlendirilmiş kodun girmesini sağlar.

## lint-staged nedir?

lint-staged, sahneye alınmış Git dosyaları üzerinde linter'lar ve biçimlendiriciler çalıştıran bir araçtır. Özellikle faydalıdır çünkü:

- Yalnızca gerçekten commit edilen dosyaları işler
- Kötü biçimlendirilmiş kodun depoya girmesini engeller
- Sadece değişen dosyaları kontrol ettiği için hızlı çalışır
- Git kancalarıyla mükemmel entegre olur

## Ultracite lint-staged'i nasıl kullanır

`npx ultracite init` çalıştırdığınızda ve lint-staged seçeneğini seçtiğinizde, Ultracite otomatik olarak:

1. **lint-staged'i kurar** geliştirme bağımlılığı olarak  
2. **Oluşturur veya günceller** lint-staged yapılandırmanızı  
3. **Biçimlendiriciyi yapılandırır** ilgili dosya türlerinde çalışacak şekilde

Varsayılan yapılandırma şu dosya türlerinde `npx ultracite fix` çalıştırır:
- JavaScript/TypeScript dosyaları (`.js`, `.jsx`, `.ts`, `.tsx`)
- JSON dosyaları (`.json`, `.jsonc`)
- CSS dosyaları (`.css`, `.scss`)
- Markdown dosyaları (`.md`, `.mdx`)

## Desteklenen Yapılandırma Formatları

Ultracite'in lint-staged entegrasyonu, tüm standart lint-staged yapılandırma formatlarını destekler:

### package.json

```json title="package.json"
{
  "lint-staged": {
    "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
  }
}
```

### .lintstagedrc.json

```json title=".lintstagedrc.json"
{
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
}
```

### .lintstagedrc.js (CommonJS)

```javascript title=".lintstagedrc.js"
module.exports = {
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
};
```

### .lintstagedrc.mjs (ES Modules)

```javascript title=".lintstagedrc.mjs"
export default {
  "*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}": ["npx ultracite fix"]
};
```

### .lintstagedrc.yaml

```yaml title=".lintstagedrc.yaml"
"*.{js,jsx,ts,tsx,json,jsonc,css,scss,md,mdx}":
  - 'npx ultracite fix'
```

## Akıllı Yapılandırma Birleştirmesi

Zaten bir lint-staged yapılandırmanız varsa, Ultracite şunları yapacaktır:

- **Mevcut yapılandırma formatınızı algılar**
- **Ultracite kurallarını birleştirir** mevcut kurallarınızla
- **Özel yapılandırmalarınızı korur**
- **Dosyayı yerinde günceller**

Bu, lint-staged zaten kurulu olsa bile `npx ultracite init` komutunu güvenle çalıştırabileceğiniz anlamına gelir.

## Nasıl Çalışır

1. **Ön-commit kancası**: lint-staged, Husky aracılığıyla her commit'ten önce çalışır  
2. **Dosya tespiti**: Desenlerle eşleşen yalnızca sahneye alınmış dosyalar işlenir  
3. **Biçimlendirme komutu**: `npx ultracite fix` her eşleşen dosyada çalıştırılır  
4. **Otomatik düzeltme**: Biome mümkün olduğunda sorunları otomatik olarak düzeltir  
5. **Yeniden sahneleme**: Düzeltilen dosyalar otomatik olarak tekrar commit için sahneye alınır

## Manuel Yapılandırma

lint-staged kurulumunuzu özelleştirmeniz gerekirse, başlatma işleminden sonra yapılandırmayı değiştirebilirsiniz:

```json title="package.json"
{
  "lint-staged": {
    "*.{js,jsx,ts,tsx}": ["npx ultracite fix", "npm run test:unit"],
    "*.{json,jsonc}": ["npx ultracite fix"],
    "*.{css,scss}": ["npx ultracite fix", "npm run test:styles"],
    "*.{md,mdx}": ["npx ultracite fix"]
  }
}
```

## Komut Entegrasyonu

lint-staged entegrasyonu Ultracite'in komut yapısıyla çalışır:

- **`npx ultracite fix`**: Biome'ı otomatik düzeltmeyle çalıştırır (lint-staged tarafından kullanılır)  
- **`npx ultracite check`**: Biome'ı otomatik düzeltme olmadan çalıştırır (CI/manuel kontroller için)

## Sorun Giderme

### Yapılandırma Bulunamadı
Eksik lint-staged yapılandırmasıyla ilgili hatalar görüyorsanız:

```bash
npx ultracite init  # Re-run initialization
```

### ESM/CommonJS Sorunları
Ultracite proje türünüzü otomatik olarak algılar ve uygun yapılandırma formatını oluşturur:

- **ESM projeleri** (package.json'da `"type": "module"` ile) `.mjs` yapılandırmaları alır  
- **CommonJS projeleri** `.cjs` yapılandırmaları alır  
- **Yedek**: Modül tespiti başarısız olursa `.lintstagedrc.json` oluşturur

### Mevcut Yapılandırma Çakışmaları
Karmaşık mevcut yapılandırmalarınız varsa, elle birleştirmeniz gerekebilir:

1. Mevcut lint-staged yapılandırmanızı yedekleyin  
2. `npx ultracite init` çalıştırın  
3. Korumanız gereken özel kuralları manuel olarak birleştirin

## En İyi Uygulamalar

1. **Hızlı tutun**: lint-staged içinde yalnızca gerekli kontrolleri çalıştırın  
2. **Belirli desenler kullanın**: Yalnızca işlenmesi gereken dosyaları hedefleyin  
3. **CI ile birleştirin**: Hızlı yerel kontroller için lint-staged kullanın, tam lint işlemlerini CI'de yapın  
4. **Kurulumunuzu test edin**: Her şeyin çalıştığından emin olmak için bir test commit'i yapın

## İlgili

- [Husky Entegrasyonu](/integration/husky) - Git kancaları kurulumu  
- [Yapılandırma](/configuration) - Biome yapılandırma seçenekleri  
- [Kurulum](/setup) - İlk proje kurulumu